package RMI;

/**
 * 
 * @author Alexandre Boursier, Nolan Potier
 * 
 */
import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
import java.util.HashMap;

public class Dictionnaire extends UnicastRemoteObject implements Dico_Interface {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private HashMap<String, String> dico;

	/**
	 * Constructeur par défaut qui construit le dictionnaire qui permettra de
	 * stocker tous les surnoms et les noms associés
	 */
	public Dictionnaire() throws RemoteException {
		dico = new HashMap<String, String>();
	}

	public HashMap<String, String> getDico() throws RemoteException {
		return dico;
	}

	public synchronized boolean ajouter(String surnom, String nom)
			throws RemoteException {
		if (dico.get(surnom) != null) {
			return false;
		}
		dico.put(surnom, nom);
		return true;
	}

	/**
	 * Methode qui permet de recuperer la liste des surnoms et des noms
	 * 
	 * @return La liste de tous les surnoms et les noms associés.
	 */
	public HashMap<String, String> list() throws RemoteException {
		return dico;
	}

	public HashMap<String, String> list(String nom) throws RemoteException {
		HashMap<String, String> liste = new HashMap<String, String>();
		for (String surnom : dico.keySet()) {
			if (dico.get(surnom).equals(nom))
				liste.put(surnom, nom);
		}
		return liste;
	}
}
